#include "modeladm.h"
#include "mainsimu.h"

#include "../HeadFile/ERP_mixing_2_model.h"
#include "../HeadFile/ERP_HT_processing_1_model.h"
#include "../HeadFile/ERP_GB_processing_1_model.h"
#include "../HeadFile/ERP_DB_processing_1_model.h"
#include "../HeadFile/ERP_mixing_4_model.h"
#include "../HeadFile/ERP_tank_storage_1_model.h"
#include "../HeadFile/ERP_output_3_model.h"
#include "../HeadFile/ERP_tank_storage_8_model.h"
#include "../HeadFile/ERP_DCU_processing_1_model.h"
#include "../HeadFile/ERP_tank_storage_3_model.h"
#include "../HeadFile/ERP_input_1_model.h"
#include "../HeadFile/ERP_tank_storage_13_model.h"
#include "../HeadFile/ERP_CDU_processing_1_model.h"
#include "../HeadFile/ERP_mixing_8_model.h"
#include "../HeadFile/ERP_mixing_9_model.h"
#include "../HeadFile/ERP_FCC_processing_2_model.h"
#include "../HeadFile/ERP_mixing_3_model.h"
#include "../HeadFile/ERP_CRU_processing_1_model.h"
#include "../HeadFile/ERP_output_1_model.h"
#include "../HeadFile/ERP_output_2_model.h"
#include "../HeadFile/ERP_output_4_model.h"
#include "../HeadFile/ERP_tank_storage_11_model.h"
#include "../HeadFile/ERP_tank_storage_12_model.h"
#include "../HeadFile/ERP_tank_storage_6_model.h"
#include "../HeadFile/ERP_KTU_processing_1_model.h"
#include "../HeadFile/ERP_mixing_7_model.h"
#include "../HeadFile/ERP_FCC_processing_1_model.h"
#include "../HeadFile/ERP_tank_storage_10_model.h"
#include "../HeadFile/ERP_tank_storage_4_model.h"
#include "../HeadFile/ERP_tank_storage_5_model.h"
#include "../HeadFile/ERP_input_2_model.h"
#include "../HeadFile/ERP_input_3_model.h"
#include "../HeadFile/ERP_CDU_processing_2_model.h"

#include "../HeadFile/MES_tank_storage_4_model.h"
#include "../HeadFile/MES_tank_storage_13_model.h"
#include "../HeadFile/MES_HT_processing_1_model.h"
#include "../HeadFile/MES_tank_storage_9_model.h"
#include "../HeadFile/MES_tank_storage_10_model.h"
#include "../HeadFile/MES_tank_storage_2_model.h"
#include "../HeadFile/MES_DCU_processing_1_model.h"
#include "../HeadFile/MES_output_3_model.h"
#include "../HeadFile/MES_mixing_5_model.h"
#include "../HeadFile/MES_tank_storage_1_model.h"
#include "../HeadFile/MES_mixing_7_model.h"
#include "../HeadFile/MES_splitting_2_model.h"
#include "../HeadFile/MES_CDU_processing_1_model.h"
#include "../HeadFile/MES_tank_storage_3_model.h"
#include "../HeadFile/MES_tank_storage_12_model.h"
#include "../HeadFile/MES_KTU_processing_1_model.h"
#include "../HeadFile/MES_output_4_model.h"
#include "../HeadFile/MES_tank_storage_8_model.h"
#include "../HeadFile/MES_mixing_2_model.h"
#include "../HeadFile/MES_output_1_model.h"
#include "../HeadFile/MES_splitting_1_model.h"
#include "../HeadFile/MES_output_2_model.h"
#include "../HeadFile/MES_tank_storage_6_model.h"
#include "../HeadFile/MES_input_2_model.h"
#include "../HeadFile/MES_mixing_4_model.h"
#include "../HeadFile/MES_input_3_model.h"
#include "../HeadFile/MES_FCC_processing_2_model.h"
#include "../HeadFile/MES_mixing_9_model.h"
#include "../HeadFile/MES_splitting_3_model.h"
#include "../HeadFile/MES_tank_storage_5_model.h"
#include "../HeadFile/MES_GB_processing_1_model.h"
#include "../HeadFile/MES_tank_storage_11_model.h"
#include "../HeadFile/MES_tank_storage_7_model.h"
#include "../HeadFile/MES_mixing_1_model.h"
#include "../HeadFile/MES_mixing_6_model.h"
#include "../HeadFile/MES_CRU_processing_1_model.h"
#include "../HeadFile/MES_input_1_model.h"
#include "../HeadFile/MES_mixing_3_model.h"
#include "../HeadFile/MES_DB_processing_1_model.h"
#include "../HeadFile/MES_FCC_processing_1_model.h"
#include "../HeadFile/MES_mixing_8_model.h"
#include "../HeadFile/MES_CDU_processing_2_model.h"

void MainSimulator::registerNewAtomics()
{
	SingleModelAdm::Instance().registerAtomic( NewAtomicFunction<ERP_mixing_2_model>(), "ERP_mixing_2_model");
	SingleModelAdm::Instance().registerAtomic( NewAtomicFunction<ERP_HT_processing_1_model>(), "ERP_HT_processing_1_model");
	SingleModelAdm::Instance().registerAtomic( NewAtomicFunction<ERP_GB_processing_1_model>(), "ERP_GB_processing_1_model");
	SingleModelAdm::Instance().registerAtomic( NewAtomicFunction<ERP_DB_processing_1_model>(), "ERP_DB_processing_1_model");
	SingleModelAdm::Instance().registerAtomic( NewAtomicFunction<ERP_mixing_4_model>(), "ERP_mixing_4_model");
	SingleModelAdm::Instance().registerAtomic( NewAtomicFunction<ERP_tank_storage_1_model>(), "ERP_tank_storage_1_model");
	SingleModelAdm::Instance().registerAtomic( NewAtomicFunction<ERP_output_3_model>(), "ERP_output_3_model");
	SingleModelAdm::Instance().registerAtomic( NewAtomicFunction<ERP_tank_storage_8_model>(), "ERP_tank_storage_8_model");
	SingleModelAdm::Instance().registerAtomic( NewAtomicFunction<ERP_DCU_processing_1_model>(), "ERP_DCU_processing_1_model");
	SingleModelAdm::Instance().registerAtomic( NewAtomicFunction<ERP_tank_storage_3_model>(), "ERP_tank_storage_3_model");
	SingleModelAdm::Instance().registerAtomic( NewAtomicFunction<ERP_input_1_model>(), "ERP_input_1_model");
	SingleModelAdm::Instance().registerAtomic( NewAtomicFunction<ERP_tank_storage_13_model>(), "ERP_tank_storage_13_model");
	SingleModelAdm::Instance().registerAtomic( NewAtomicFunction<ERP_CDU_processing_1_model>(), "ERP_CDU_processing_1_model");
	SingleModelAdm::Instance().registerAtomic( NewAtomicFunction<ERP_mixing_8_model>(), "ERP_mixing_8_model");
	SingleModelAdm::Instance().registerAtomic( NewAtomicFunction<ERP_mixing_9_model>(), "ERP_mixing_9_model");
	SingleModelAdm::Instance().registerAtomic( NewAtomicFunction<ERP_FCC_processing_2_model>(), "ERP_FCC_processing_2_model");
	SingleModelAdm::Instance().registerAtomic( NewAtomicFunction<ERP_mixing_3_model>(), "ERP_mixing_3_model");
	SingleModelAdm::Instance().registerAtomic( NewAtomicFunction<ERP_CRU_processing_1_model>(), "ERP_CRU_processing_1_model");
	SingleModelAdm::Instance().registerAtomic( NewAtomicFunction<ERP_output_1_model>(), "ERP_output_1_model");
	SingleModelAdm::Instance().registerAtomic( NewAtomicFunction<ERP_output_2_model>(), "ERP_output_2_model");
	SingleModelAdm::Instance().registerAtomic( NewAtomicFunction<ERP_output_4_model>(), "ERP_output_4_model");
	SingleModelAdm::Instance().registerAtomic( NewAtomicFunction<ERP_tank_storage_11_model>(), "ERP_tank_storage_11_model");
	SingleModelAdm::Instance().registerAtomic( NewAtomicFunction<ERP_tank_storage_12_model>(), "ERP_tank_storage_12_model");
	SingleModelAdm::Instance().registerAtomic( NewAtomicFunction<ERP_tank_storage_6_model>(), "ERP_tank_storage_6_model");
	SingleModelAdm::Instance().registerAtomic( NewAtomicFunction<ERP_KTU_processing_1_model>(), "ERP_KTU_processing_1_model");
	SingleModelAdm::Instance().registerAtomic( NewAtomicFunction<ERP_mixing_7_model>(), "ERP_mixing_7_model");
	SingleModelAdm::Instance().registerAtomic( NewAtomicFunction<ERP_FCC_processing_1_model>(), "ERP_FCC_processing_1_model");
	SingleModelAdm::Instance().registerAtomic( NewAtomicFunction<ERP_tank_storage_10_model>(), "ERP_tank_storage_10_model");
	SingleModelAdm::Instance().registerAtomic( NewAtomicFunction<ERP_tank_storage_4_model>(), "ERP_tank_storage_4_model");
	SingleModelAdm::Instance().registerAtomic( NewAtomicFunction<ERP_tank_storage_5_model>(), "ERP_tank_storage_5_model");
	SingleModelAdm::Instance().registerAtomic( NewAtomicFunction<ERP_input_2_model>(), "ERP_input_2_model");
	SingleModelAdm::Instance().registerAtomic( NewAtomicFunction<ERP_input_3_model>(), "ERP_input_3_model");
	SingleModelAdm::Instance().registerAtomic( NewAtomicFunction<ERP_CDU_processing_2_model>(), "ERP_CDU_processing_2_model");

	SingleModelAdm::Instance().registerAtomic( NewAtomicFunction<MES_tank_storage_4_model>(), "MES_tank_storage_4_model");
	SingleModelAdm::Instance().registerAtomic( NewAtomicFunction<MES_tank_storage_13_model>(), "MES_tank_storage_13_model");
	SingleModelAdm::Instance().registerAtomic( NewAtomicFunction<MES_HT_processing_1_model>(), "MES_HT_processing_1_model");
	SingleModelAdm::Instance().registerAtomic( NewAtomicFunction<MES_tank_storage_9_model>(), "MES_tank_storage_9_model");
	SingleModelAdm::Instance().registerAtomic( NewAtomicFunction<MES_tank_storage_10_model>(), "MES_tank_storage_10_model");
	SingleModelAdm::Instance().registerAtomic( NewAtomicFunction<MES_tank_storage_2_model>(), "MES_tank_storage_2_model");
	SingleModelAdm::Instance().registerAtomic( NewAtomicFunction<MES_DCU_processing_1_model>(), "MES_DCU_processing_1_model");
	SingleModelAdm::Instance().registerAtomic( NewAtomicFunction<MES_output_3_model>(), "MES_output_3_model");
	SingleModelAdm::Instance().registerAtomic( NewAtomicFunction<MES_mixing_5_model>(), "MES_mixing_5_model");
	SingleModelAdm::Instance().registerAtomic( NewAtomicFunction<MES_tank_storage_1_model>(), "MES_tank_storage_1_model");
	SingleModelAdm::Instance().registerAtomic( NewAtomicFunction<MES_mixing_7_model>(), "MES_mixing_7_model");
	SingleModelAdm::Instance().registerAtomic( NewAtomicFunction<MES_splitting_2_model>(), "MES_splitting_2_model");
	SingleModelAdm::Instance().registerAtomic( NewAtomicFunction<MES_CDU_processing_1_model>(), "MES_CDU_processing_1_model");
	SingleModelAdm::Instance().registerAtomic( NewAtomicFunction<MES_tank_storage_3_model>(), "MES_tank_storage_3_model");
	SingleModelAdm::Instance().registerAtomic( NewAtomicFunction<MES_tank_storage_12_model>(), "MES_tank_storage_12_model");
	SingleModelAdm::Instance().registerAtomic( NewAtomicFunction<MES_KTU_processing_1_model>(), "MES_KTU_processing_1_model");
	SingleModelAdm::Instance().registerAtomic( NewAtomicFunction<MES_output_4_model>(), "MES_output_4_model");
	SingleModelAdm::Instance().registerAtomic( NewAtomicFunction<MES_tank_storage_8_model>(), "MES_tank_storage_8_model");
	SingleModelAdm::Instance().registerAtomic( NewAtomicFunction<MES_mixing_2_model>(), "MES_mixing_2_model");
	SingleModelAdm::Instance().registerAtomic( NewAtomicFunction<MES_output_1_model>(), "MES_output_1_model");
	SingleModelAdm::Instance().registerAtomic( NewAtomicFunction<MES_splitting_1_model>(), "MES_splitting_1_model");
	SingleModelAdm::Instance().registerAtomic( NewAtomicFunction<MES_output_2_model>(), "MES_output_2_model");
	SingleModelAdm::Instance().registerAtomic( NewAtomicFunction<MES_tank_storage_6_model>(), "MES_tank_storage_6_model");
	SingleModelAdm::Instance().registerAtomic( NewAtomicFunction<MES_input_2_model>(), "MES_input_2_model");
	SingleModelAdm::Instance().registerAtomic( NewAtomicFunction<MES_mixing_4_model>(), "MES_mixing_4_model");
	SingleModelAdm::Instance().registerAtomic( NewAtomicFunction<MES_input_3_model>(), "MES_input_3_model");
	SingleModelAdm::Instance().registerAtomic( NewAtomicFunction<MES_FCC_processing_2_model>(), "MES_FCC_processing_2_model");
	SingleModelAdm::Instance().registerAtomic( NewAtomicFunction<MES_mixing_9_model>(), "MES_mixing_9_model");
	SingleModelAdm::Instance().registerAtomic( NewAtomicFunction<MES_splitting_3_model>(), "MES_splitting_3_model");
	SingleModelAdm::Instance().registerAtomic( NewAtomicFunction<MES_tank_storage_5_model>(), "MES_tank_storage_5_model");
	SingleModelAdm::Instance().registerAtomic( NewAtomicFunction<MES_GB_processing_1_model>(), "MES_GB_processing_1_model");
	SingleModelAdm::Instance().registerAtomic( NewAtomicFunction<MES_tank_storage_11_model>(), "MES_tank_storage_11_model");
	SingleModelAdm::Instance().registerAtomic( NewAtomicFunction<MES_tank_storage_7_model>(), "MES_tank_storage_7_model");
	SingleModelAdm::Instance().registerAtomic( NewAtomicFunction<MES_mixing_1_model>(), "MES_mixing_1_model");
	SingleModelAdm::Instance().registerAtomic( NewAtomicFunction<MES_mixing_6_model>(), "MES_mixing_6_model");
	SingleModelAdm::Instance().registerAtomic( NewAtomicFunction<MES_CRU_processing_1_model>(), "MES_CRU_processing_1_model");
	SingleModelAdm::Instance().registerAtomic( NewAtomicFunction<MES_input_1_model>(), "MES_input_1_model");
	SingleModelAdm::Instance().registerAtomic( NewAtomicFunction<MES_mixing_3_model>(), "MES_mixing_3_model");
	SingleModelAdm::Instance().registerAtomic( NewAtomicFunction<MES_DB_processing_1_model>(), "MES_DB_processing_1_model");
	SingleModelAdm::Instance().registerAtomic( NewAtomicFunction<MES_FCC_processing_1_model>(), "MES_FCC_processing_1_model");
	SingleModelAdm::Instance().registerAtomic( NewAtomicFunction<MES_mixing_8_model>(), "MES_mixing_8_model");
	SingleModelAdm::Instance().registerAtomic( NewAtomicFunction<MES_CDU_processing_2_model>(), "MES_CDU_processing_2_model");

}

